const jwt = require('jsonwebtoken');
const accessTokenSecret = 'abc123'; 

// JWT验证中间件
exports.verifyToken = (req, res, next) => {
  // 从请求头中获取token
  const token = req.header('Authorization')?.replace('Bearer ', '');
  
  if (!token) {
    return res.status(401).json({ message: '未提供认证token' });
  }
  
  try {
    // 验证访问令牌
    const decoded = jwt.verify(token, accessTokenSecret);
    
    // 将解码后的用户信息存储在请求对象中
    req.user = decoded;
    next(); // 继续处理下一个中间件
  } catch (error) {
    // 识别令牌过期错误
    if (error.name === 'TokenExpiredError') {
      return res.status(401).json({ 
        message: '访问令牌已过期',
        tokenExpired: true 
      });
    }
    res.status(401).json({ message: '无效的token' });
  }
};